package com.yamanyar.weebill.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.yamanyar.weebill.domain.ActionPath;

/**
 * Services for ActionPath. These services uses data access objects for
 * persistence operations or any kind of calculation that might be needed.
 * 
 * Created in Jun 28, 2008.
 * 
 * @author Kaan Yamanyar
 */
public interface ActionPathService {

	/**
	 * Persists given actionPath.
	 * 
	 * @param action.
	 */
	@Transactional
	public void createNew(ActionPath action);

	/**
	 * Lists all the actionPathss.
	 * 
	 * @return
	 */
	public List<ActionPath> findAll();

	/**
	 * Returns a list of actionPaths with the given name.
	 * 
	 * @param name
	 *            name of the actionPath.
	 * @return
	 */
	public List<ActionPath> findByName(String name);

	/**
	 * Return the requested action
	 * @param id the id of the Action required
	 * @return required Action
	 */
	public ActionPath getActionPathWithID(Long id);

}
